#!/usr/bin/env python3
# coding=UTF-8
import time

import openpyxl
from xlrd import open_workbook
from xlwt import Workbook
from xlutils.copy import copy
import new210930
import os

'''
result
工号	        姓名	    大区	地区	           岗位	状态	备注	    店代码1	考试内容	                    匹配大区	匹配地区
FAFC6589	王雅程	G7	District B22	FC	激活	未交卷	DJIS010	2021年9月微学习试题（广汽埃安）	G7	    District B22

为参考

工号	         姓名	部门	                                     岗位	                        状态
FAFC7006	胡张杰	广汽汇理云课堂.销售及市场部.G5.District B48	FC	                            激活


'''

result_title = ['工号', '姓名', '大区', '地区', '岗位', '状态', '备注', '店代码1', '考试内容', '匹配大区', '匹配地区']
if __name__ == '__main__':
    print()
    files = new210930.open_file_win('请选择需要合并的文件')
    # 先预生成合成后文件
    write_file = os.getcwd() + os.sep + new210930.format_datetime('%Y%m%d%H%M%S') + '.xlsx'

    wb = openpyxl.Workbook()
    # 生成表头
    # wb = openpyxl.load_workbook(write_file, read_only=False)
    sheet = wb.create_sheet(index=0, title='总表' + new210930.format_datetime('%Y%m%d%H%M%S'))
    for row_index in range(0, len(result_title)):
        sheet.cell(row=1, column=row_index + 1).value = result_title[row_index]
    wb.save(write_file)
    write_work_book = openpyxl.load_workbook(write_file, read_only=False)
    sheet = write_work_book.worksheets[0]
    for file in files:
        # 先读取源文件
        if os.path.splitext(file)[1] == '.xls':
            read_work_book = open_workbook(file)
            sheets = read_work_book.sheets()
            sheet = sheets[0]
            # 读取表头
            # 获取第一行  考试编号，考试名称（考试内容）
            print(sheet.name)
            content = sheet.row_values(0)[3]
            sheet_titles = sheet.row_values(2)
            # 格式前面几行固定如下
            '''
            0工号          	1姓名	    2部门	                                3岗位	4状态
            FAFC7006	胡张杰	广汽汇理云课堂.销售及市场部.G5.District B48	FC	激活

            '''
            result_list = []
            # 从第三行开始是数据
            for row in range(3, sheet.nrows):
                values = sheet.row_values(row)
                temp_map = {}
                for index, title in enumerate(sheet_titles, 0):
                    temp_map[title] = values[index]
                result_list.append(temp_map)

            # print(result_list)
            # 将当前表单内容写入对应的文件，部门分割之后写入

            # wb.close()
            # 保存数据
            # write_work_book = openpyxl.load_workbook(write_file, read_only=False)
            # sheet = write_work_book.worksheets[0]
            max_row = sheet.max_row
            for index1, value1 in enumerate(result_list, 0):
                # print(value1)
                depart = str(value1.get('部门'))
                split = depart.split('.')
                print(split)
                for index2, value2 in enumerate(result_title, 0):
                    # print(index2)
                    # print(value2)
                    if (value2 == '大区' or value2 == '匹配大区') and len(split) > 3:
                        sheet.cell(row=max_row + index1 + 1, column=index2 + 1).value = split[2]
                    elif (value2 == '地区' or value2 == '匹配地区') and len(split) > 3:
                        sheet.cell(row=max_row + index1 + 1, column=index2 + 1).value = split[3]
                    elif value2 == '考试内容':
                        sheet.cell(row=max_row + index1 + 1, column=index2 + 1).value = content
                    elif value2 == '备注':
                        value = value1.get('通过状态')
                        if value is None or value == '':
                            value = '未交卷'
                        sheet.cell(row=max_row + index1 + 1, column=index2 + 1).value = value
                    else:
                        sheet.cell(row=max_row + index1 + 1, column=index2 + 1).value = value1.get(value2)
            wb.save(write_file)
            # write_work_book.close()
        else:
            print('不支持的文件类型')
